/**
 * 文件名：AppVO.java
 * 功能：应用程序视图对象（View Object）
 * 作用：封装返回给前端的应用数据，与 Entity 相比可增加额外字段或隐藏敏感信息
 * 模块关系：
 *   - 由 AppController 创建：从 AppEntity 转换而来
 *   - 返回给前端：被包装在 ApiResponse 中返回
 *   - 使用 Builder 模式：方便链式创建对象
 *   - 包含额外字段：tags、features、scenarios（可扩展）
 * 作者：白永康
 * 学号：2501210209
 */
package com.example.demo.app.vo;

import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * 应用程序视图对象
 * 用于封装返回给前端的数据，支持 Builder 模式构造
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AppVO {
    /** 应用 ID */
    private Long id;
    
    /** 应用名称 */
    private String name;
    
    /** 简短描述 */
    private String description;
    
    /** 详细描述 */
    private String fullDescription;
    
    /** 应用头像/图标 URL */
    private String avatar;
    
    /** 应用分类 */
    private String category;
    
    /** 价格 */
    private BigDecimal price;
    
    /** 评分 */
    private Double rating;
    
    /** 下载量 */
    private Integer downloads;
    
    /** 评论数 */
    private Integer reviews;
    
    /** 作者/开发者 */
    private String author;
    
    /** 发布时间 */
    private LocalDate publishedAt;
    
    /** 标签列表（可扩展） */
    private List<String> tags;
    
    /** 功能列表（可扩展） */
    private List<String> features;
    
    /** 应用场景列表（可扩展） */
    private List<String> scenarios;
}
